function foo() {
    console.log(this.a);
}
var a = 'global'
var obj2 = {
    a: 2,
    foo: foo
}
var obj1 = {
    a: 1,
    obj2: obj2
}

var bar = obj2.foo
obj2.foo() // 2
obj1.obj2.foo() // 2
bar() // global

// 被忽略的this

function foo(a, b) {
    console.log(a, b);
}
foo.apply(null, [2, 3])

var bar = foo.bind(null, 5)
bar(6)